﻿<!DOCTYPE html>
<html>
  <head>
    <title>RDD以及其特点</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <meta name="apple-mobile-web-app-capable" content="yes"/>
    <link href="resources/css/jquery-ui-themes.css" type="text/css" rel="stylesheet"/>
    <link href="resources/css/axure_rp_page.css" type="text/css" rel="stylesheet"/>
    <link href="data/styles.css" type="text/css" rel="stylesheet"/>
    <link href="files/rdd以及其特点/styles.css" type="text/css" rel="stylesheet"/>
    <script src="resources/scripts/jquery-1.7.1.min.js"></script>
    <script src="resources/scripts/jquery-ui-1.8.10.custom.min.js"></script>
    <script src="resources/scripts/prototypePre.js"></script>
    <script src="data/document.js"></script>
    <script src="resources/scripts/prototypePost.js"></script>
    <script src="files/rdd以及其特点/data.js"></script>
    <script type="text/javascript">
      $axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent.gif'; };
      $axure.utils.getOtherPath = function() { return 'resources/Other.html'; };
      $axure.utils.getReloadPath = function() { return 'resources/reload.html'; };
    </script>
  </head>
  <body>
    <div id="base" class="">

      <!-- Unnamed (矩形) -->
      <div id="u44" class="ax_default box_1">
        <div id="u44_div" class=""></div>
      </div>

      <!-- Unnamed (图片) -->
      <div id="u45" class="ax_default _图片">
        <img id="u45_img" class="img " src="images/rdd以及其特点/u45.png"/>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u46" class="ax_default ellipse">
        <img id="u46_img" class="img " src="images/rdd以及其特点/u46.png"/>
        <div id="u46_text" class="text ">
          <p><span>节点1：partition1,10万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u47" class="ax_default ellipse">
        <img id="u47_img" class="img " src="images/rdd以及其特点/u46.png"/>
        <div id="u47_text" class="text ">
          <p><span>节点2：partition2,10万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u48" class="ax_default ellipse">
        <img id="u48_img" class="img " src="images/rdd以及其特点/u46.png"/>
        <div id="u48_text" class="text ">
          <p><span>节点3：partition3,10万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u49" class="ax_default ellipse">
        <img id="u49_img" class="img " src="images/rdd以及其特点/u46.png"/>
        <div id="u49_text" class="text ">
          <p><span>节点4：partition5,10万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u50" class="ax_default ellipse">
        <img id="u50_img" class="img " src="images/rdd以及其特点/u46.png"/>
        <div id="u50_text" class="text ">
          <p><span>节点5：partition5,10万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u51" class="ax_default ellipse">
        <img id="u51_img" class="img " src="images/rdd以及其特点/u46.png"/>
        <div id="u51_text" class="text ">
          <p><span>节点6：partition6,10万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u52" class="ax_default ellipse">
        <img id="u52_img" class="img " src="images/rdd以及其特点/u52.png"/>
        <div id="u52_text" class="text ">
          <p><span>节点7：partition7,10万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u53" class="ax_default ellipse">
        <img id="u53_img" class="img " src="images/rdd以及其特点/u46.png"/>
        <div id="u53_text" class="text ">
          <p><span>节点8：partition8,10万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u54" class="ax_default ellipse">
        <img id="u54_img" class="img " src="images/rdd以及其特点/u46.png"/>
        <div id="u54_text" class="text ">
          <p><span>节点9：partition9,10万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (椭圆形) -->
      <div id="u55" class="ax_default ellipse">
        <img id="u55_img" class="img " src="images/rdd以及其特点/u46.png"/>
        <div id="u55_text" class="text ">
          <p><span>节点：存放了partition9计算之前的数据</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u56" class="ax_default box_1">
        <div id="u56_div" class=""></div>
        <div id="u56_text" class="text ">
          <p><span>硬盘，5万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u57" class="ax_default box_1">
        <div id="u57_div" class=""></div>
        <div id="u57_text" class="text ">
          <p><span>内存，5万数据</span></p>
        </div>
      </div>

      <!-- Unnamed (Right Arrow) -->
      <div id="u58" class="ax_default arrow">
        <img id="u58_img" class="img " src="images/rdd以及其特点/u58.png"/>
      </div>

      <!-- Unnamed (Left Arrow) -->
      <div id="u59" class="ax_default arrow">
        <img id="u59_img" class="img " src="images/rdd以及其特点/u59.png"/>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u60" class="ax_default box_1">
        <div id="u60_div" class=""></div>
        <div id="u60_text" class="text ">
          <p><span>数据来源</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u61" class="ax_default box_1">
        <div id="u61_div" class=""></div>
        <div id="u61_text" class="text ">
          <p><span>Spark集群</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u62" class="ax_default box_1">
        <div id="u62_div" class=""></div>
        <div id="u62_text" class="text ">
          <p><span>一个RDD，在逻辑上，抽象的代表了一个HDFS文件。</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u63" class="ax_default box_1">
        <div id="u63_div" class=""></div>
        <div id="u63_text" class="text ">
          <p><span>但是，它实际上是被分区的，分为多个分区，多个分区散落在Spark集群中，不同的节点上。</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u64" class="ax_default box_1">
        <div id="u64_div" class=""></div>
        <div id="u64_text" class="text ">
          <p><span>比如说，RDD有90万数据，分为9个partition，9个分区。</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u65" class="ax_default box_1">
        <div id="u65_div" class=""></div>
        <div id="u65_text" class="text ">
          <p><span>现在，节点9出了些故障，导致partition9的数据丢失了，spark不会脆弱到将数据丢失。</span></p><p><span><br></span></p>
        </div>
      </div>

      <!-- Unnamed (Left Arrow) -->
      <div id="u66" class="ax_default arrow">
        <img id="u66_img" class="img " src="images/rdd以及其特点/u66.png"/>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u67" class="ax_default box_1">
        <div id="u67_div" class=""></div>
        <div id="u67_text" class="text ">
          <p><span>RDD是由很强的容错性的，当它发现自己的数据丢失了以后，会自动从自己来源的数据进行重计算，重新获取自己这份数据，这一切对用户，都是完全透明的。</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u68" class="ax_default box_1">
        <div id="u68_div" class=""></div>
        <div id="u68_text" class="text ">
          <p><span>RDD的每个partition，在spark节点存储时，默认都是放在内存中，但是如果说内存放不下这么多数据时，比如每个节点最多放5万数据，结果你每个partition是10万数据，那么久会把partition中的部分数据写入磁盘上，进行保存。</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u69" class="ax_default box_1">
        <div id="u69_div" class=""></div>
        <div id="u69_text" class="text ">
          <p><span>而上述这一切，对于用户来说，都是完全透明的。也就是说，你不用去管RDD的数据存储在哪里，内存还是硬盘，只要关注，你针对RDD进行计算和处理等操作。</span></p>
        </div>
      </div>

      <!-- Unnamed (矩形) -->
      <div id="u70" class="ax_default box_1">
        <div id="u70_div" class=""></div>
        <div id="u70_text" class="text ">
          <p><span>所以说，RDD的这种自动进行内存和磁盘之间权衡和切换的机制，就是RDD的弹性的特点所在。</span></p>
        </div>
      </div>
    </div>
  </body>
</html>
